/* Araujo Heiker CI. 19726991
 * Goyo Willandher CI.20666542
 * Rodriguez Rafael CI.20009872
 * Williams Roman CI.20016812 
 * Morett Gilberth CI.20929667*/

package controlador;

import modelo.Drogueria;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Vector;
import modelo.Linea;
import vista.VentanaListaLinea;


public class ControladorListaLinea implements ActionListener {

	private VentanaListaLinea ventanalistalinea;
	private Drogueria drogueria;
	public ControladorListaLinea(Drogueria drogueria) {
		super();
		ventanalistalinea = new VentanaListaLinea();
		ventanalistalinea.setLocationRelativeTo(null);
		ventanalistalinea.setVisible(true);
		ventanalistalinea.agregarListener(this);
		this.drogueria = drogueria;
		this.cargarListado();

	}

	public ControladorListaLinea(VentanaListaLinea ventanalistalinea,
			Linea linea, ArrayList<Linea> lineas) {
		super();
		this.ventanalistalinea = ventanalistalinea;
		
	}

	public void actionPerformed(ActionEvent e) {
		if (e.getActionCommand().equalsIgnoreCase("Incluir")) {
			clickIncluirLinea();

		} else if (e.getActionCommand().equalsIgnoreCase("Eliminar")) {
			if (ventanalistalinea.numeroFilasSeleccionadas() == 0) {
				ventanalistalinea
						.mostrarMensaje(" No ha seleccionado ningun producto");
			} else {
				String codigoProducto = ventanalistalinea
						.obtenerCodigoProductoFilaSeleccionada();
				clickEliminar();

			}
		}

	}
    //Metodo que permite desaparecer la ventana lista producto
	
	public void clickIncluirLinea() {

		try {

			ventanalistalinea.dispose();
			this.finalize();
		} catch (Throwable e1) {
			e1.printStackTrace();
		} finally {
			new ControladorVentanaLinea(drogueria);

		}
	}
	

	//Metodo que permite eliminar un producto
	public void clickEliminar() {

		String codigoLinea = ventanalistalinea
				.obtenerCodigoProductoFilaSeleccionada();
		ventanalistalinea.eliminarFilaSeleccionada(ventanalistalinea
				.getFilaSeleccionada());

		for (int i = 0; i < drogueria.cantidadLineas(); i++) {
			if (codigoLinea.equals(drogueria.getUnaLinea(i).getCodigoLinea()))
				drogueria.getUnaLinea(i).setEstaus(Linea.INACTIVO);

		}

	}
	//Este metodo permite cargar el arreglo de Linea  de la drogueria en la tabla de Linea de la Ventana Lista Linea;
	//Solo cargara las Lineas cuyo estatus sea Activo
	
	public void cargarListado() {
		ArrayList<Linea> lineas = drogueria.getLineas();
		for (int i = 0; i < drogueria.cantidadLineas(); i++) {
			Linea linea = lineas.get(i);

			if (linea.getEstaus() == Linea.INACTIVO) {
				continue;
			}
			Vector<String> datoLinea = new Vector<String>(4, 1);
			String nombre = linea.getClasificacion();
			String numero = linea.getCodigoLinea();

			datoLinea.add(numero);
			datoLinea.add(nombre);
			;
			ventanalistalinea.agregarFilaLinea(datoLinea);

		}

	}
}
